home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / PASCAL / ALLSWAGS.ZIP / SWAGG-M.ZIP / MISC.SWG / 0153_Calculating Windchill.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-05-26  |  1.3 KB  |  45 lines

  1. {
  2. Given the time of year, I offer the following pascal function,
  3. (my translation of M. Cooper's WINDCHILL public domain C code):
  4.  
  5. Calculates windchill, given temperature (Fahrenheit) and windspeed (mph)
  6.  
  7. ---------------------------------------------------------------------------
  8. NOTE:
  9.  
  10.  I have converted Mr. Kolding's original function so that it accepts and
  11.  returns real parameters.  I have also offered a Metric equivalent.
  12.  
  13.   - Kerry (SWAG Support Team)
  14. }
  15.  
  16. Function WindChill(FahrenheitTemp, Mph_WindSpeed : Real) : Real;
  17. begin
  18.   WindChill := 0.0817 *
  19.                (3.71 * Sqrt(Mph_WindSpeed) + 5.81 - 0.25 * Mph_WindSpeed) *
  20.                (FahrenheitTemp - 91.4) + 91.4;
  21. end;
  22.  
  23. Function MetricWindChill(CelciusTemp, Kph_WindSpeed : Real) : Real;
  24. Var
  25.   FahrenheitTemp,
  26.   Mph_WindSpeed  : Real;
  27. begin
  28.   { Convert Celcius to Fahrenhiet - VERY exact :) }
  29.   FahrenheitTemp := (CelciusTemp * 492 / 273.16) + 32;
  30.   { Convert Kph to Mph }
  31.   Mph_WindSpeed  := Kph_WindSpeed * 1.609;
  32.  
  33.   { Use exact same formula as above }
  34.   MetricWindChill :=
  35.     0.0817 * (3.71 * Sqrt(Mph_WindSpeed) + 5.81 - 0.25 * Mph_WindSpeed) *
  36.     (FahrenheitTemp - 91.4) + 91.4;
  37. end;
  38.  
  39.  
  40. begin
  41.   { Room Temperature Test: }
  42.   Writeln('68°F + 0 Mph Wind Speed: ', WindChill(68, 0) : 0 : 2);
  43.   Writeln('20°C + 0 Kph Wind Speed: ', MetricWindChill(20, 0) : 0 : 2);
  44.  
  45. end.